package cn.liangxxhu.gateway.mq.constant;

public interface MessageConstant {

    /**
     * 消费线程数量（默认 20)，指定处理消息的线程池大小，控制并发处理能力。线程数越多，并发能力越强，但受限于系统资源
     */
    int THREAD_NUMBER = 15;

    /**
     * 最大重试次数（默认 -1）
     * 作用：消息消费失败后，RocketMQ 会自动重试，此属性指定最大重试次数：
     * 若为 -1：使用 RocketMQ 默认重试次数（16 次）；
     * 若为 n（n≥0）：重试 n 次后，消息仍消费失败则进入死信队列（DLQ）。
     */
    int MAX_RECONSUME_TIMES = 16;
    /**
     * 消息消费超时时间（默认 15 秒，单位：秒）。
     * 作用：若消息处理时间超过此值，RocketMQ 会认为消费失败，触发重试。
     */
    long CONSUME_TIMEOUT = 10;
    /**
     * 下次重试的延迟级别（默认 0）。
     * 作用：消费失败后，指定消息重试前的延迟时间（依赖 RocketMQ 预定义的延迟级别：1-18 级，对应 1 秒、5 秒、10 秒...2 小时）。
     * 若为 0：不延迟，立即重试；
     * 若为 3：延迟 10 秒后重试（对应 RocketMQ 延迟级别 3 的时间）。
     */
    int DELAY_LEVEL_WHEN_NEXT_CONSUME = 3;

    interface OrderMessageConstant {

        /**
         * 消息主题
         */
        String TOPIC = "order_cancel";
        /**
         * 消费组
         */
        String GROUP = "order_cancel_group";
        /**
         * selectorExpression 过滤表达（默认 "*"，表示匹配所有消息）
         */
        String TAG = "order_cancel_tag";
    }
}
